public member function
<memory>

std::shared_ptr::operator bool

explicit operator bool() const noexcept;
检查是否非空
返回存储的指针是否为 null 指针。

存储的指针指向 shared_ptr 对象 解引用 的对象,这通常与其拥有的指针(销毁时被删除的指针)相同。如果 shared_ptr 对象是别名(例如,别名构造 的对象及其副本),则它们可能不同。

该函数返回的结果与get()!=0.

相同。请注意,一个 null shared_ptr(即此函数返回false的指针)不一定是一个空的 shared_ptr别名可能拥有某个指针但指向 null,或者拥有者组甚至可能拥有 null 指针(参见 构造函数 4 和 5)。

参数



返回值

false如果 shared_ptr 是 null 指针,则返回。
true否则。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// example of shared_ptr::operator bool
#include <iostream>
#include <memory>

int main () {
  std::shared_ptr<int> foo;
  std::shared_ptr<int> bar (new int(34));

  if (foo) std::cout << "foo points to " << *foo << '\n';
  else std::cout << "foo is null\n";

  if (bar) std::cout << "bar points to " << *bar << '\n';
  else std::cout << "bar is null\n";

  return 0;
}

输出
foo is null
bar points to 34


另见